I. Field of the Invention
The present invention relates to the field of computer graphics and, more particularly, to manipulating data stored in a bit map pertaining to a video image to be presented by a raster printer, screen, display device, or other humanly visible manifestation.
II. Related Art
In raster graphics systems, a graphics image is stored in memory and presented to a printer, screen, or display device by representing the image in the form of a matrix of bits. The matrix is referred to as a "bit map" or a "frame buffer." For monochrome systems, one bit in the bit map represents one visible dot, or picture element (pixel, for short), on the display. For gray scale or color systems, several bits in the bit map represent one pixel or group of pixels on the display.
Many types of graphics processors have been designed and implemented in the art for controlling the display of graphics images. Graphics processors dedicated to this task help relieve the processing burden of the controlling processor. Graphics processors are usually designed to not only generate image dam, but also manipulate existing image dam in the bit map. Typical graphics manipulations include, for example, rotation and translation. "Rotation" refers to moving an image, or parts thereof, about an axis perpendicular to the display. In contrast, "translation" refers to the linear component of movement, i.e., movement across the display without rotation.
The manipulation of an image requires extensive arithmetic calculations. A reason is that the bit map is dealt with as a coordinate system having an X and a Y component. In order to manipulate a bit in the bit map, both the X and Y components must be considered. In the "X window system," which is an industry standard specification for windowed graphics developed by the Massachusetts Institute of Technology (MIT), Boston, Mass., U.S.A., sixteen mathematical operations maybe used in order to logically operate upon two operands, such as an X and a Y component representing a pixel.
As a result of the complex mathematics involved in manipulating graphics images, many design techniques have been implemented by those skilled in the art in order to reduce the number of arithmetic gyrations while still providing for manipulation of images. These techniques can be carried out via software, hardware, or combinations thereof. Generally, hardware implementations are faster than software, but their flexibility is more limited.
A well known technique called "masking" has been utilized to reduce the number of requisite mathematical operations when performing image manipulations. Essentially, blocks of pixels are treated as a unit with consideration only to the edge pixels. While the inner pixels of a block are masked from consideration, the number of mathematical operations necessary to manipulate the block is severely reduced. In the art, the transfer of and manipulation of a block of pixels is oftentimes referred to as "bit boundary block transfer" (BitBlt).
Another technique is "clipping." "Clipping" refers to the process of eliminating a portion of an image. Similar to masking, blocks of pixels are treated as a unit with consideration only to edge pixels. Part of an image is clipped away from another part along an edge of pixels, thereby eliminating a portion of the image. Using this procedure, it is not necessary to perform mathematical calculations on pixel data within the area that has been removed.
Still another well known technique for reducing the number of mathematical operations necessary to perform image manipulations is "mirroring." "Mirroring" is used to symmetrically reflect an image, or parts thereof, about an axis, such as a vertical or horizontal axis. The mirroring of data is oftentimes accomplished by sending pixel data through a barrel shifter or like device.
Although the foregoing techniques have to some extent reduced the arithmetic overhead associated with performing image manipulations, graphics processors with higher performance and flexibility than those in the past are still needed in the highly competitive graphics industry where speed and efficiency are the primary driving forces.